import { client } from "@renderer/config/alioss";
import { UploadRawFile } from "element-plus";
import { nanoid } from 'nanoid'

export const tool = {
	dateFormat: (date: string | number | Date, fmt: string = 'yyyy-MM-dd hh:mm:ss') => {
		date = new Date(date)
		let o = {
			'M+': date.getMonth() + 1,//月份
			'd+': date.getDate(),     //日
			'h+': date.getHours(),    //小时
			'm+': date.getMinutes(),  //分
			's+': date.getSeconds(),  //秒
			'q+': Math.floor((date.getMonth() + 3) / 3),//季度
			'S': date.getMilliseconds() //毫秒
		}
		if (/(y+)/.test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
		}
		for (let k in o) {
			if (new RegExp("(" + k + ")").test(fmt)) {
				fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
			}
		}
		return fmt
	},
	oss: {
		upload: async (file: UploadRawFile): Promise<any> => {
			// 上传的文件名称
			const uuid = nanoid()
			const fileType = file.name.substring(file.name.lastIndexOf('.'))

			// 二级目录名称
			const currentDate = tool.dateFormat(new Date(), 'yyyy-MM-dd')

			// 完整的上传路径
			const fileName = `xiaoluxian-crm/${currentDate}/${uuid + fileType}`

			// 上传操作
			try {
				const data = await client.multipartUpload(fileName, file, {
					// progress: function (p: number) {
					// 	console.log('上传进度', p)
					// }
				})
				ElMessage.success('上传成功~')
				return data
			} catch (error) {
				ElMessage.error('上传失败~')
			}
		}
	}
}